package com.jz.pay.factories.tmp;

import com.jz.pay.factories.dto.WrapperDTO;

/**
 * 具体流程绘制
 */
public abstract class OnethingProcess extends Process{
    public abstract boolean isCurrent(WrapperDTO dto);
    public final void invoke(WrapperDTO dto){
        saveSt(dto);
        process(dto);
        saveEd(dto);
    }
    void saveSt(WrapperDTO dto){
        System.out.println("一件事保存初始状态");
    }
    abstract void process(WrapperDTO dto);

    void saveEd(WrapperDTO dto){
        System.out.println("一件事保存结果状态");
    }
}

// 抽象流程方法汇总
abstract class Process {
    abstract void invoke(WrapperDTO dto);
    abstract void saveSt(WrapperDTO dto);
    abstract void process(WrapperDTO dto);
    abstract void saveEd(WrapperDTO dto);
}